package chapter02;

public class Test08_Hero {
    public static void main(String[] args) {
        Hero h = new Hero("伊泽瑞尔",500,
                "ADC");
        h.levelUp();
        h.levelUp();
        h.levelUp();
        h.info();
        Hero h1 = new Hero("卡牌大师",400,
                "ADC","蓝方");
        h1.info();
    }
}
//定义游戏中的英雄类 属性 名字、初始血量、种类
//方法 levelUp 每升一级血量+100 info方法 将自己信息输出
class Hero{
    private String name;
    private int blood;
    private String type;
    private String camp = "红方";
    public Hero(String name,int blood,String type){
        this.name = name;
        this.blood = blood;
        this.type = type;
    }
    //定义同名的函数完成函数的重载 overload
    // 参数列表或返回值类型不同
    public Hero(String name,int blood,
                String type,String camp){
        //this调用构造函数
        //必须放在第一行 不能两个构造函数互相调用
        //只能在构造函数中调用
        this(name,blood,type);
        this.camp = camp;
    }
    public void levelUp(){
        blood+=100;
    }
    private void Open(){
        System.out.println("可以自我介绍");
    }
    public void info(){
        //可以使用this调用本类中的方法 this可以省略
        this.Open();
        System.out.println(name);
        System.out.println(blood);
        System.out.println(type);
        System.out.println(camp);
    }
}